﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DotLink;
using DotBusiness.Models;
using System.Text.RegularExpressions;

namespace JAVALI_Cardapio_Atendimento
{
    public partial class FrmCadastrarTipo : Form
    {
        public Form Before { get; set; }

        #region Construtor
        public FrmCadastrarTipo()
        {
            InitializeComponent();
        }
        #endregion

        #region Métodos

        /// <summary>
        /// Carregamento inicial do formulário cadastro de Tipos de Produto
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmCardapioCadastrarTipo_Load(object sender, EventArgs e)
        {
            //Carrega no DataGridView de Tipos de Produto, os Tipos de Produto que já estão cadastrados
            dtTiposProdutos.DataSource = Bag.Cardapio.listarTipo();
            dtTiposProdutos.Refresh();

        }

        /// <summary>
        /// No clique do botão Adicionar, o cadastro de um Tipo de Produto é efetuado
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdicionarTipoProduto_Click(object sender, EventArgs e)
        {
            try
            {
                string nomeTpProduto = txtNomeTipoProduto.Text;
                string precoTpProduto = txtPrecoTipoProduto.Text;

                if (!String.IsNullOrEmpty(nomeTpProduto) && !String.IsNullOrEmpty(precoTpProduto))
                {
                    try
                    {
                        Bag.Cardapio.adicionarTipo(nomeTpProduto[0].ToString(), Double.Parse(precoTpProduto));
                    }
                    catch(Exception ex)
                    {
                        if (ex.Message == "Input string was not in a correct format."){
                            MessageBox.Show("Digite um formato válido para o preço");
                        }else{
                            MessageBox.Show(ex.Message);
                        }
                        return;
                    }
                    dtTiposProdutos.DataSource = (MTipo[])Bag.MTipos_Array();
                    dtTiposProdutos.Refresh();
                    MessageBox.Show("Tipo Cadastrado", "Javali - Cardápio");
                }
                else
                {
                    MessageBox.Show("Preencha todos os campos!");
                }
            }
            catch
            {
                MessageBox.Show("Cadastro não efetuado. Tente novamente!");
            }
        }

        /// <summary>
        /// No clique do botão Voltar, retorna para o Menu de Cardápio e fecha o formulário atual de Cadastro de Tipos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnVoltar_Click(object sender, EventArgs e)
        {
            this.Before.Show();
            this.Hide();
        }

        /// <summary>
        /// No clique do link de Voltar, retorna para o Menu de Cardápio e fecha o formulário de Cadastro de Tipos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void linkVoltarMenuCardapio_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            this.Before.Show();
            this.Hide();
        }

        /// <summary>
        /// No clique do botão de Ok, retorna para o Menu de Cardápio e fecha o formulário de Cadastro de Tipos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOkTipoProduto_Click(object sender, EventArgs e)
        {
            this.Before.Show();
            this.Hide();
        }
        #endregion
    }
}
